/**
 * Looker  新闻整合系统
 * Author  :solosky
 * File    :UpdateModifier.java
 * Date    :May 14, 2009
 * Lisence : Apache License 2.0 
 */
package net.looker.monitor.modifier;

import java.util.logging.Logger;

import net.looker.data.News;

/**
 * 更新更改器
 * 因为更新的逻辑复杂，为了简化，这里先删除原来的新闻然后再新增原来的新闻
 * @author solosky
 *
 */
public class UpdateModifier extends Modifier 
{

	/**
	 * @param news
	 */
	public UpdateModifier(News news)
	{
		super(news);
	}


	/* (non-Javadoc)
	 * @see net.looker.work.Work#startWork()
	 */
	@Override
	public void startWork()
	{
		//删除原来的新闻
		DeleteModifier deleteModifier = new DeleteModifier(news);
		DispatcherManager.delete(deleteModifier);
		
		//TODO 这里应该改成更优美的线程间通信。。。
		try {
			//等待删除完成
			while(!deleteModifier.isFinished()) {
				Thread.currentThread();
				Thread.sleep(100);
			}
		} catch (InterruptedException e) {
			Logger.getLogger("looker").warning("更新更改器：等待删除完成中断->"+news.getUrl());
		}
		
		//新增新闻
		DispatcherManager.add(new AddModifier(news));
	}
	

}
